Kurt Hsu's blog

The Rails developer in taiwan.


  • 首頁

  • 標籤

  • 分類

  • 歸檔

[Rails]Ransack最基本使用

發表於 2018-04-17 更新於 2019-08-21 分類於 Rails , Gem , Ransack

官方文件

在view我們使用search_form_for去操作

search.html.erb
1
2
3
4
5
<%= search_form_for @q do |f| %>
<%= f.label :name_cont %>
<%= f.search_field :name_cont %>
<%= f.submit %>
<% end %>

在controller裡

search_controller.rb
1
2
3
4
def index
@q = Person.ransack(params[:q])
@people = @q.result(distinct: true)
end

此時如果我們在收尋欄輸入 ‘kurt’ 並送出在rails console會發現:
$ params[:q] = {’name’ => ‘kurt’}

$ @q = Ransack::Search<class: Person, base: Grouping <conditions: [Condition <attributes: [“name”], predicate: cont, values: [“kurt”]>], combinator: and>>

$ @q.result.to_sql = “SELECT “persons”.* FROM “persons” WHERE (“persons”.”name” LIKE ‘%kurt%’)”

我們可以把撈出的result放進@people這個變數拿去使用了!

注意:在f.search_field欄位給予的欄位名稱後面要加上_cont!
例如要找name這個欄位就要輸入name_cont

# Rails # Gem # Ransack
[Rails]form_for action to where
[Tool]整理程式碼 Sublime setting,BeautifyRuby, htmlbeautifier

Kurt Hsu

Progress One Percent Every Day
171 文章
55 分類
163 標籤
RSS
© 2020 Kurt Hsu
由 Hexo 強力驅動 v3.8.0
|
主題 – NexT.Muse v7.3.0